package com.ruoyi.qsng.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 课程购买对象 k_course_purchase
 *
 * @author kanglou
 * @date 2023-06-07
 */
@ApiModel("课程购买对象 k_course_purchase")
@Data
public class KCoursePurchase extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("业务字段--管理员审核意见")
    private String adminRemark;

    @ApiModelProperty("业务字段--退款状态")
    private String orderState;

    @ApiModelProperty("业务字段---活动场地")
    private String activityVenueApp;

    @ApiModelProperty("业务字段---班次")
    private String classesApp;

    @ApiModelProperty("业务字段---班级")
    private String classApp;

    @ApiModelProperty(" 业务字段---奖状图片多个逗号隔开")
    private String awardImage;

    /** 是否代购 0否1是 */
    @Excel(name = "是否代购", readConverterExp = "0=否,1=是")
    private int isOwn;

    /** 学员姓名 */
    @Excel(name = "学员姓名")
    private String nameWX;

    /** 年龄 */
    @Excel(name = "年龄")
    private Long ageWX;

    /** 民族 */
    @Excel(name = "民族")
    private String nationWX;

    /** 身份证 */
    @Excel(name = "身份证")
    private String idCardWX;

    /** 手机号 */
    private String phoneWX;

    /** 家长姓名 */
    @Excel(name = "家长姓名")
    private String parentNameWX;

    /** 家长电话 */
    @Excel(name = "家长电话")
    private String parentPhoneWX;

    /** 学校 */
    @Excel(name = "学校")
    private String schoolWX;

    /** 年级 */
    @Excel(name = "年级")
    private String gradeWX;


    /** 购买人id */
    @Excel(name = "购买人id")
    @ApiModelProperty("购买人id")
    private String userId;
    /** 用户账号 */
    @ApiModelProperty("用户账号")
    @Excel(name = "购买人")
    private String userName;
    /** 课程id */
    @Excel(name = "课程id")
    @ApiModelProperty("课程id")
    private String courseId;

    @ApiModelProperty("已售名额")
    private Long sold;


    @ApiModelProperty("业务字段---学生年龄")
    private String ageApp;

    /** 购买节次 */
    @Excel(name = "购买节次")
    @ApiModelProperty("购买节次")
    private Integer purchaseSection;

    /** 当前状态0发起购买1已购买 */
    //@Excel(name = "状态", readConverterExp = "0=未购买,1=已购买，2已退款")
    @ApiModelProperty("当前状态0发起购买1已购买")
    private Integer state;

    @Excel(name = "状态")
    @ApiModelProperty("当前状态0发起购买1已购买")
    private String stateName;

    /** 金额 */
    @Excel(name = "金额")
    @ApiModelProperty("金额")
    private BigDecimal price;

    /** 订单号 */
    @Excel(name = "订单号")
    @ApiModelProperty("订单号")
    private String outTradeNo;

    /** 主键 */
    private String id;

    @ApiModelProperty("wx订单号")
    private String outTradeNoWx;

    /** 课程名称 */
    @ApiModelProperty("课程名称")
    private String name;

    /** 教师 */
    @ApiModelProperty("教师")
    private String teacher;

    /** 教师介绍 */
    @ApiModelProperty("教师介绍")
    private String teacherContent;

    /** 课程宣传图 */
    @ApiModelProperty("课程宣传图")
    private String picture;

    /** 课程介绍 */
    @ApiModelProperty("课程介绍")
    private String content;

    /** 课程分类 */
    @ApiModelProperty("课程分类")
    private String courseType;


    /** 课程班次 */
    @ApiModelProperty("课程班次")
    private String courseClasses;

    /** 课程地点 */
    @ApiModelProperty("课程地点")
    private String courseLocation;

    /** 班级分类 */
    @ApiModelProperty("班级分类")
    private String classCategory;

    /** 年龄段 */
    @ApiModelProperty("年龄段")
    private String ageGroup;

    /** 总名额 */
    @ApiModelProperty("总名额")
    private Integer totalQuota;

    /** 剩余名额 */
    @ApiModelProperty("剩余名额")
    private Integer remainingQuota2;

    /** 上课时间 */
    @Excel(name = "上课时间")
    @ApiModelProperty("上课时间")
    private String classTime;

    /** 节次 */
    @Excel(name = "节次")
    @ApiModelProperty("节次")
    private Integer section;


    /** 报名开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("报名开始时间")
    @Excel(name = "报名开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date bmKssj;

    /** 报名结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("报名结束时间")
    @Excel(name = "报名结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date bmJssj;

    /** 开课开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开课开始时间")
    @Excel(name = "开课开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date kkKksj;

    /** 开课结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开课结束时间")
    @Excel(name = "开课结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date kkJssj;

    /** 课程状态0下架1上架 */
    @Excel(name = "课程状态", readConverterExp = "0=下架,1=上架")
    @ApiModelProperty("课程状态0下架1上架")
    private Integer courseState;

    @Excel(name = "购买时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("购买时间")
    private Date createTime;


    /** 兑换积分值 */
    @Excel(name = "兑换积分值")
    @ApiModelProperty("兑换积分值")
    private Integer exchangeIntegral;

    /** 报名须知 */
    @Excel(name = "报名须知")
    @ApiModelProperty("报名须知")
    private String notice;

    /** 微信id */
    @ApiModelProperty("微信id")
    private String openId;
    /** 密码 */
    @ApiModelProperty("密码")
    private String password;
    @ApiModelProperty("手机号")
    private String phone;
    /** 用户头像 */
    @ApiModelProperty("用户头像")
    private String avatar;
    /** 学员姓名 */
    @ApiModelProperty("学员姓名")
    private String nickName;
    /** 学员年龄 */
    @ApiModelProperty("学员年龄")
    private Integer nickAge;
    /** 学员民族 */
    @ApiModelProperty("学员民族")
    private String nickNation;
    /** 学员身份证件号 */
    @ApiModelProperty("学员身份证件号")
    private String nickCard;
    /** 家长姓名 */
    @ApiModelProperty("家长姓名")
    private String homeName;
    /** 家长电话 */
    @ApiModelProperty("家长电话")
    private String homePhone;
    /** 所在学校 */
    @ApiModelProperty("所在学校")
    private String nickSchool;
    /** 所在年级 */
    @ApiModelProperty("所在年级")
    private String nickLevel;

    public void setUserId(String userId)
    {
        this.userId = userId;
    }

    public String getUserId()
    {
        return userId;
    }
    public void setCourseId(String courseId)
    {
        this.courseId = courseId;
    }

    public String getCourseId()
    {
        return courseId;
    }
    public void setPurchaseSection(Integer purchaseSection)
    {
        this.purchaseSection = purchaseSection;
    }

    public Integer getPurchaseSection()
    {
        return purchaseSection;
    }
    public void setState(Integer state)
    {
        this.state = state;
    }

    public Integer getState()
    {
        return state;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setOutTradeNo(String outTradeNo)
    {
        this.outTradeNo = outTradeNo;
    }

    public String getOutTradeNo()
    {
        return outTradeNo;
    }
    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("courseId", getCourseId())
            .append("purchaseSection", getPurchaseSection())
            .append("state", getState())
            .append("price", getPrice())
            .append("outTradeNo", getOutTradeNo())
            .append("id", getId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("openId", getOpenId())
            .append("userName", getUserName())
            .append("password", getPassword())
            .append("phone", getPhone())
            .append("avatar", getAvatar())
            .append("nickName", getNickName())
            .append("nickAge", getNickAge())
            .append("nickNation", getNickNation())
            .append("nickCard", getNickCard())
            .append("homeName", getHomeName())
            .append("homePhone", getHomePhone())
            .append("nickSchool", getNickSchool())
            .append("nickLevel", getNickLevel())
            .toString();
    }
}
